home *** CD-ROM | disk | FTP | other *** search
INI File | 1985-04-07 | 6.8 KB | 199 lines |
- [74036,3110]
- PP.DOC 16-Mar-85 6915 88
-
- Keywords: PRETTYPRINTER PROGRAM REFORMATTER CPM-80 CPM-86 MS-DOS
-
- PAGE 1
-
-
-
- PP - Pascal Prettyprinting Program
-
- 14 March 1985
-
- - Jon Hueras and
- Henry Ledgard
- - Rick L. Marcus
-
-
- What PP Does
- ------------
-
- PP takes as input a Pascal program or program fragment and
- reformats it according to a standard set of prettyprinting rules. The
- prettyprinted program is given as output. PP makes no attempt to
- detect or correct syntactic errors in your program. However,
- syntactic errors may result in erroneous prettyprinting.
-
- PP differs from some other prettyprinting programs in that it
- does not reformat your program "right down to every last semicolon."
- Such a philosophy requires formatting everything in a rigid fashion
- which is bound to be displeasing, or else it must provide you with a
- voluminous set of "options." Furthermore, such a scheme must do full
- syntax analysis of the program which means that it must be completely
- written and compilable. If you wish to prettyprint a program still
- under development, then you are out of luck.
-
- PP, on the other hand, implements a strategy which states that it
- is not necessary to impose more than a "minimum" set of restrictions,
- and the prettyprinter should yield to your discretion beyond this
- minimum. PP preserves blank lines and extra spaces you insert in the
- program as input, besides adding blank lines and extra spaces
- according to the rules for prettyprinting given below.
-
-
- General prettyprinting rules:
-
- 1. All statements and declarations begin on separate lines.
-
- 2. No input line may be longer than 80 characters. Any output
- line longer than 80 characters is continued on a separate
- line.
-
- 3. The keywords "BEGIN", "END", "REPEAT", and "RECORD" are
- forced to stand on lines by themselves (or possibly followed
- by supporting comments). In addition, the "UNTIL" clause of
- "REPEAT-UNTIL" statement is forced to start on a new line.
-
- 4. A blank line is forced before the keywords "PROGRAM",
- "PROCEDURE", "FUNCTION", "LABEL", "CONST", "TYPE", and "VAR".
-
- 5. A space is forced before and after the symbols ":=" and "=".
- Additionally, a space is forced after the symbol ":". Note
- that only "="s in declarations are formatted; "="s in
- expressions are ignored.
-
-
-
-
-
-
-
-
-
- PP - Pascal Prettyprinting Program PAGE 2
-
-
-
-
- 6. Spaces and blank lines already in your program are preserved
- by PP, which adds (but does not subtract) blank lines and
- spaces. You can improve the readability of your programs by
- taking advantage of this feature. However, this feature also
- means that you may sometimes have to manually de-indent (in
- your editor) after block structure changes.
-
-
-
- Indentation rules:
-
- 1. The body of a declaration is indented from the "LABEL",
- "CONST", "TYPE", or "VAR" keyword which heads it.
-
- 2. The bodies of "BEGIN-END", "REPEAT-UNTIL", "WHILE", "WITH",
- and "CASE" statements, as well as "RECORD-END" structures and
- "CASE" variants (to one level) are indented from keywords
- which head them.
-
- 3. An "IF-THEN-ELSE" statement is indented as follows:
-
- IF <expression>
- THEN <statement>
- ELSE <statement>
-
-
-
- When to Use PP
- --------------
-
- PP is especially useful to reformat a Pascal program or program
- fragment that you have typed without regard to formatting (such as
- entering every line left-justified to save time). Because the program
- need not be syntactically correct, PP provides the fastest means of
- obtaining a more readable version of your program.
-
- PP is best used to prettyprint a Pascal program already on a file
- or punched on cards. PP changes neither the cards nor the file used
- as input. Prettyprinting a program line-by-line as it is entered at a
- terminal is considerably less useful.
-
-
- How to Use PP
- -------------
-
- Type "PP" at the system command level followed by the old and new
- file names. If the new file already exists, it will be overwritten
- without warning. If the wrong number of file names are given, PP will
- print a message reminding the user of the correct system call.
-
-
-
-
-
-
-
-
-
-
-
- PP - Pascal Prettyprinting Program PAGE 3
-
-
-
- Examples
- --------
-
- 1. Reformat a program called "prog1.pas" under CP/M:
-
- PP prog1.pas prog1.new ; reformat a program
- TYPE prog1.new ; check that it is correct
- ERA prog1.pas ; delete the old version
- REN prog1.pas=prog1.new ; rename the new version
-
- 2. Reformat the same program under MS-DOS:
-
- PP prog1.pas prog1.new
- TYPE prog1.new
- ERASE prog1.pas
- RENAME prog1.new prog1.pas
-
- 3. Preview PP's output before writing to a file:
-
- PP prog.pas con: ; on CP/M
- PP prog.pas con ; on MS-DOS
-
- 4. Remind oneself how to use PP:
-
- PP
-
-
- History
- -------
-
- PP prettyprints a Pascal program or program fragment given as
- input. It was originally named PRETTYPRINT and was written in Pascal
- by Jon Hueras and Henry Ledgard, University Computing Center and
- Computer and Information Science Dept., University of Massachusetts at
- Amherst, in August, 1976. (See "An Automatic Formatting Program for
- Pascal", by Jon Hueras and Henry Ledgard, Pascal Newsletter #6, page
- 70, November, 1976.)
-
- Small corrections were made to PRETTYPRINT by Charles Fischer,
- Dept. of Computer Science, University of Wisconsin, Madison, in 1977.
- PRETTYPRINT was modified for CDC-6000 Pascal by Rick L. Marcus,
- University Computer Center, University of Minnesota, in September,
- 1978, and was renamed PRETTY. Marcus also wrote this documentation.
-
- Peter Grogono adapted PRETTYPRINT to CP/M, using Pascal/Z. He
- also made several modifications and renamed it PP (date unknown). In
- 1984 Willett Kempton adapted the Pascal/Z version to Turbo Pascal,
- which required only minor mods. The Turbo version uses a portable
- argument library "ARGLIB.PAS" to get file names, which makes it easier
- to adapt PP to other Pascal systems. The Turbo version has been
- tested under CP/M-80, CP/M-86, and MS-DOS. Kempton also adapted this
- documentation, from the CDC version, to apply to the microcomputer
- version.
-
-
-
-